package Rbac.view;

import Rbac.domain.vo.BaseVo;
import Rbac.domain.vo.Result;
import Rbac.service.IBaseService;
//

/**
 * 视图层-基类
 */
public abstract class BaseView<Vo extends BaseVo, IService extends IBaseService>{
    IService service;
    /**
     * 缓存列表
     */
    Vo[] cache;
    void printError(String message) {
        System.out.println("\033[31m" + message + "\033[0m");
    }
    Vo getCacheById() {
        System.out.print("请输入ID(ID为大于0的整数):");
        if (!MainView.input.hasNextInt()) {
            MainView.input.nextLine();
            printError("输入有误，请输入整数ID！");
            return null;
        }
        int id = MainView.input.nextInt();
        MainView.input.nextLine();
        if (id < 1) {
            printError("输入有误，请输入大于0的整数ID！");
            return null;
        }
        if (cache == null) {
            Result result = service.list();
            cache=(Vo[]) result.data;
        }
        Vo vo = null;
        for (Vo item : cache) {
            if (item.id == id) {
                System.out.println("该ID对应的数据为：");
                System.out.println(item);
                vo = item;
                break;
            }
        }
        if (vo == null) {
            printError("该ID不存在！");
            return null;
        }
        return vo;
    }
}
